/*
 * Copyright @ 2024 weili23
 * com.example.mythread.a03threadcase 15:43
 * All right reserved.
 */

package com.example.mythread.a03threadcase;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @desc:
 * @author: weili23
 * @createTime: 2024/10/16 15:43
 * @version: v1.0
 */
public class ThreadDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
    /*
     * 多线程的方式 实现callable接口
     * 1. 自己定义一个类MyCallable实现callable接口
     * 2. 重写里面的call方法
     *
     * 3. 创建自己类MyCallable的对象
     * 4. 创建一个FutureTask类的对象，并把MyCallable对象作为构造方法的参数传递
     * 5. 创建一个thread类的对象，并把FutureTask对象作为构造方法的参数传递.并启动
     */
        MyCallable callable = new MyCallable();
        FutureTask<Integer> futureTask = new FutureTask<>(callable);
        Thread t1 = new Thread(futureTask);
        t1.start();
        Integer sum = futureTask.get();
        System.out.println("计算的和："+sum);

    }
}
